home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / asprites.lha / AaaSprites.S < prev    next >
Encoding:
Text File  |  1991-09-08  |  3.6 KB  |  232 lines

  1.     jmp    $20000
  2.     org    $20000
  3.     load    $20000
  4.  
  5. >extern    "gfx/aaasprites",$545ae
  6.  
  7. gfxmem = $40000
  8. sprites = $545ae
  9. spranz = 180*2
  10.  
  11. s:    lea    gfxmem,a0
  12.     move.w    #40*256/4-1,d0
  13. cloop1:    clr.l    (a0)+
  14.     dbf    d0,cloop1
  15.  
  16.     lea    sprites,a0
  17.     move.l    #$80909680,d0
  18.     moveq    #spranz/4-1,d1
  19. cloop2:    move.l    d0,(a0)
  20.     eori.b    #$80,d0
  21.     move.l    d0,$60(a0)
  22.     subi.l    #$00080000,d0
  23.     eori.b    #$80,d0
  24.     move.l    d0,$c0(a0)
  25.     eori.b    #$80,d0
  26.     move.l    d0,$120(a0)
  27.     addi.l    #$00080000,d0
  28.     eori.b    #$80,d0
  29.     lea    $180(a0),a0
  30.     dbra    d1,cloop2
  31.     moveq    #0,d2
  32.     bsr    pr_reg
  33.  
  34.     lea    spr0+2(pc),a0
  35.     move.l    #sprites+$120,d0
  36.     bsr    split
  37.     moveq    #2,d1
  38. loop2:    addq.l    #8,a0
  39.     subi.w    #$60,d0
  40.     bsr    split
  41.     dbf    d1,loop2
  42.  
  43.     move.w    #$83a0,$dff096
  44.     move.l    #copperlist,$dff080
  45.     moveq    #0,d7
  46.  
  47. lmb:    btst    #10,$dff016
  48.     beq.s    normit
  49.     btst    #6,$bfe001
  50.     bne.s    lmb
  51.  
  52.     bsr.s    next_sprite
  53.     move.w    #$8000,d1
  54. lmb2:    btst    #6,$bfe001
  55.     dbne    d1,lmb2
  56.     tst.w    d1
  57.     bpl.s    lmb
  58. loop3:    bsr.s    next_sprite
  59.     move.w    #$4000,d1
  60. lmb3:    btst    #6,$bfe001
  61.     dbne    d1,lmb3
  62.     tst.w    d1
  63.     bmi.s    loop3
  64.     bra.s    lmb
  65.  
  66. normit:    move.l    #$420,d1
  67.     tst.w    $4.w
  68.     bne.s    norm1
  69.     move.l    #$22f8,d1
  70. norm1:    move.l    d1,$dff080
  71.     rts
  72.  
  73. split:    move.w    d0,4(a0)
  74.     swap    d0
  75.     move.w    d0,(a0)
  76.     swap    d0
  77.     rts
  78.  
  79. next_sprite:
  80.     addq.w    #1,d7
  81.     cmpi.w    #spranz/4,d7
  82.     bcs.s    cont1
  83.     moveq    #0,d7
  84.     move.l    #sprites-$180,d0
  85. cont1:    move.w    d7,d2
  86.     bsr.s    pr_reg
  87.     lea    spr0+2(pc),a0
  88.     addi.w    #$180+$120,d0
  89.     bsr.s    split
  90.     moveq    #2,d1
  91. loop1:    addq.l    #8,a0
  92.     subi.w    #$60,d0
  93.     bsr.s    split
  94.     dbf    d1,loop1
  95.     rts
  96.  
  97. pr_reg:    ;d2=reg
  98.     lea    gfxmem+1,a1
  99.     moveq    #1,d5
  100. prloop2:lea    font(pc),a2
  101.     move.w    d2,d3
  102.     andi.w    #$000f,d3
  103.     move.w    d3,d4
  104.     lsl.w    #2,d3
  105.     add.w    d4,d3
  106.     adda.w    d3,a2
  107.     moveq    #4,d4
  108. prloop1:move.b    (a2)+,(a1)
  109.     lea    40(a1),a1
  110.     dbf    d4,prloop1
  111.     lea    -40*5-1(a1),a1
  112.     lsr.w    #4,d2
  113.     dbf    d5,prloop2
  114.     rts
  115.  
  116. copperlist:
  117.     dc.w    $0180,$000,$0182,$fff
  118.     dc.w    $008e,$2681,$0090,$26c1,$0092,$38,$0094,$d0
  119.     dc.w    $00e0,$0004,$00e2,$0000
  120. spr0:    dc.w    $0120,$0000,$0122,$0478
  121.     dc.w    $0124,$0000,$0126,$0478
  122. spr1:    dc.w    $0128,$0000,$012a,$0478
  123.     dc.w    $012c,$0000,$012e,$0478
  124.     dc.w    $0130,$0000,$0132,$0478
  125.     dc.w    $0134,$0000,$0136,$0478
  126.     dc.w    $0138,$0000,$013a,$0478
  127.     dc.w    $013c,$0000,$013e,$0478
  128.     dc.w    $01a0,$000,$01a2,$fff,$01a4,$f00,$01a6,$f90
  129.     dc.w    $01a8,$ff0,$01aa,$a60,$01ac,$bbb,$01ae,$666
  130.     dc.w    $01b0,$740,$01b2,$000,$01b4,$08f,$01b6,$b00
  131.     dc.w    $01b8,$000,$01ba,$000,$01bc,$000,$01be,$000
  132.     dc.w    $2601,$ff00,$0100,$1200
  133.     dc.w    $ffe1,$ffee        ;copper +255
  134.     dc.w    $2601,$ff00,$0100,$0000
  135.     dc.w    $ff01,$ffee        ;copper end
  136.  
  137. font:    dc.b    %01111110
  138.     dc.b    %01100110
  139.     dc.b    %01100110
  140.     dc.b    %01100110
  141.     dc.b    %01111110
  142.  
  143.     dc.b    %00001100
  144.     dc.b    %00011100
  145.     dc.b    %00001100
  146.     dc.b    %00001100
  147.     dc.b    %00011110
  148.  
  149.     dc.b    %01111110
  150.     dc.b    %00000110
  151.     dc.b    %01111110
  152.     dc.b    %01100000
  153.     dc.b    %01111110
  154.  
  155.     dc.b    %01111110
  156.     dc.b    %00000110
  157.     dc.b    %00011110
  158.     dc.b    %00000110
  159.     dc.b    %01111110
  160.  
  161.     dc.b    %01100000
  162.     dc.b    %01101100
  163.     dc.b    %01111110
  164.     dc.b    %00001100
  165.     dc.b    %00001100
  166.  
  167.     dc.b    %01111110
  168.     dc.b    %01100000
  169.     dc.b    %01111110
  170.     dc.b    %00000110
  171.     dc.b    %01111110
  172.  
  173.     dc.b    %01111110
  174.     dc.b    %01100000
  175.     dc.b    %01111110
  176.     dc.b    %01100110
  177.     dc.b    %01111110
  178.  
  179.     dc.b    %01111110
  180.     dc.b    %00000110
  181.     dc.b    %00001100
  182.     dc.b    %00011000
  183.     dc.b    %00110000
  184.  
  185.     dc.b    %01111110
  186.     dc.b    %01100110
  187.     dc.b    %01111110
  188.     dc.b    %01100110
  189.     dc.b    %01111110
  190.  
  191.     dc.b    %01111110
  192.     dc.b    %01100110
  193.     dc.b    %01111110
  194.     dc.b    %00000110
  195.     dc.b    %01111110
  196.  
  197.     dc.b    %01111110
  198.     dc.b    %01100110
  199.     dc.b    %01111110
  200.     dc.b    %01100110
  201.     dc.b    %01100110
  202.  
  203.     dc.b    %01111100
  204.     dc.b    %01100110
  205.     dc.b    %01111100
  206.     dc.b    %01100110
  207.     dc.b    %01111100
  208.  
  209.     dc.b    %01111110
  210.     dc.b    %01100000
  211.     dc.b    %01100000
  212.     dc.b    %01100000
  213.     dc.b    %01111110
  214.  
  215.     dc.b    %01111100
  216.     dc.b    %01100110
  217.     dc.b    %01100110
  218.     dc.b    %01100110
  219.     dc.b    %01111100
  220.  
  221.     dc.b    %01111110
  222.     dc.b    %01100000
  223.     dc.b    %01111000
  224.     dc.b    %01100000
  225.     dc.b    %01111110
  226.  
  227.     dc.b    %01111110
  228.     dc.b    %01100000
  229.     dc.b    %01111000
  230.     dc.b    %01100000
  231.     dc.b    %01100000
  232.